// #include <stdio.h>
// #include <stdlib.h>
// #include "windows.h"
// // 将十进制数转换为二进制数
// int decToBin(int dec) {
//     int result = 0; // 用于存储最终的二进制结果
//     int temp = 1;   // 用于构建二进制数的权重
//     int yushu = 0;  // 用于存储每次计算的余数
//
//     // 循环直到十进制数变为0
//     while (dec > 0) {
//         yushu = dec % 2; // 计算当前位的余数（0或1）
//         dec /= 2;        // 将十进制数除以2，取整
//         result += yushu * temp; // 将当前位的余数乘以权重后加到结果中
//         temp *= 10;      // 权重乘以10，移动到下一位
//     }
//     return result; // 返回最终的二进制结果
// }
//
// // 将十进制数转换为八进制数
// int decToOct(int dec) {
//     int result = 0; // 用于存储最终的八进制结果
//     int temp = 1;   // 用于构建八进制数的权重
//     int yushu = 0;  // 用于存储每次计算的余数
//
//     // 循环直到十进制数变为0
//     while (dec > 0) {
//         yushu = dec % 8; // 计算当前位的余数（0到7）
//         dec /= 8;        // 将十进制数除以8，取整
//         result += yushu * temp; // 将当前位的余数乘以权重后加到结果中
//         temp *= 10;      // 权重乘以10，移动到下一位
//     }
//     return result; // 返回最终的八进制结果
// }
//
// // 将十进制数转换为十六进制数
// char* decToHex(int dec) {
//     char hex[100]; // 用于存储十六进制数的字符数组
//     int index = 0; // 用于记录字符数组的当前索引
//     int yushu = 0; // 用于存储每次计算的余数
//
//     // 循环直到十进制数变为0
//     while (dec > 0) {
//         yushu = dec % 16; // 计算当前位的余数（0到15）
//         if (yushu < 10) {
//             hex[index++] = '0' + yushu; // 如果余数小于10，直接转换为字符
//         } else {
//             hex[index++] = 'A' + (yushu - 10); // 如果余数大于等于10，转换为A到F
//         }
//         dec /= 16; // 将十进制数除以16，取整
//     }
//     hex[index] = '\0'; // 在字符串末尾添加空字符
//
//     // 分配内存用于存储最终的十六进制字符串
//     char* result = (char*)malloc((index + 1) * sizeof(char));
//     for (int i = 0; i < index; i++) {
//         result[i] = hex[index - i - 1]; // 反转字符串
//     }
//     result[index] = '\0'; // 在字符串末尾添加空字符
//     return result; // 返回最终的十六进制字符串
// }
//
// int main() {
//     SetConsoleOutputCP(CP_UTF8);
//     int a = 20;
//     int b = 30;
//
//     // 调用函数并打印结果
//     printf("%d 的二进制是 %d\n", a, decToBin(a));
//     printf("%d 的八进制是 %d\n", a, decToOct(a));
//     printf("%d 的十六进制是 %s\n", a, decToHex(a));
//
//     printf("%d 的二进制是 %d\n", b, decToBin(b));
//     printf("%d 的八进制是 %d\n", b, decToOct(b));
//     printf("%d 的十六进制是 %s\n", b, decToHex(b));
//
//     return 0;
// }